//MecDaisy_dezNova

package voxToolkit;

import grafico.Fabrica;

import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.ListSelectionModel;

public class VoxList extends JList {
	private static final long serialVersionUID = 1L;
	String rotulo;

	/**
	 * Recebe um array de itens para compor a lista e um rótulo que identifica o
	 * nome da lista para ser lido pelo sintetizador
	 * 
	 * @param itens
	 * @param rotulo
	 */
	public VoxList(String[] itens, String rotulo) {
		super(itens);
		this.rotulo = rotulo;
		montaLayout();
	}

	/**
	 * Recebe dataModel para compor a lista e um rótulo que identifica o nome da
	 * lista para ser lido pelo sintetizador
	 * 
	 * @param dataModel
	 * @param rotulo
	 */
	public VoxList(DefaultListModel dataModel, String rotulo) {
		super(dataModel);
		this.rotulo = rotulo;
		montaLayout();
	}

	private void montaLayout() {
		this.setBackground(Fabrica.background);
		this.setForeground(Fabrica.branco);
		this.setBorder(Fabrica.bordaClara);
		this.setFont(Fabrica.fonteMedia);
		this.setSelectedIndex(0);
		this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		this.addListSelectionListener(VoxListEvent.instancia());
		this.addFocusListener(VoxListEvent.instancia());
	}

	public String getRotulo() {
		return rotulo;
	}

	public String getItemAtual(String tipo) {
		String itemSelecionado = this.getSelectedValue().toString();
		int posicao = this.getSelectedIndex() + 1;
		int totalItens = getTotalItens(); // this.getModel().getSize();

		String retorno = tipo + " " + itemSelecionado + posicao + " de "
				+ totalItens + "itens ";

		// System.out.println(tipo + itemSelecionado + ". " + posicao + " de " +
		// totalItens);
		return (retorno);
	}

	public String getItemAtual() {
		String retorno = this.getItemAtual("Item");
		return retorno;
	}

	public int getTotalItens() {
		int totalItens = this.getModel().getSize();
		return (totalItens);
	}
}
